package com.huoyun.car.service;

import java.util.List;

import com.huoyun.base.bean.Page;
import com.huoyun.car.bean.CarPubInfo;
import com.huoyun.car.bean.CarPubInfoCar;
import com.huoyun.car.bean.CarRoute;
import com.huoyun.car.service.evt.GetCarPubsByCityEvt;
import com.huoyun.car.model.CarPubInfoModel;
import com.huoyun.car.model.BidCarInfoModel;
import com.huoyun.car.service.evt.QueryCarForGoodsEvt;

public interface CarPubInfoService {
	public void publishCarInfo(CarPubInfo record);
	
	public List<CarPubInfo> getInfoListByUserId(int userId);
	
	public CarPubInfo getCarPubInfoById(Long id);
	
	public void updateAll(CarPubInfo carPubInfo);

    public List<CarPubInfoCar> getInfoListByCondition(CarPubInfo condition);

	public List<String> getCarNumberListByUserId(int useId);
	
	public void deleteCarPubInfoById(long carPubInfoId);
	
	public void saveCarRoute(CarRoute carRoute);
	
	public List<CarPubInfoModel> getCarPubInfoItemListByUserId(long userId);
	
	/**
	 * 更新指定"车源信息"的状态
	 * @param carPubInfoId
	 * @param status
	 */
	public void updateCarPubInfoStatus(long carPubInfoId, int status);
	
	/**
	 * 获取指定用户的详细车源信息列表
	 * @param username
	 * @return 详细车源信息列表
	 */
	public List<CarPubInfoModel> getCarPubInfoModelListByUsername(String username);
	
	/**
	 * 获取指定车牌号的详细车源列表
	 * @param carNumber
	 * @return 详细车源列表
	 */
	public List<CarPubInfoModel> getCarPubInfoModelListByCarNumber(String carNumber);
	
	/**
	 * 获取指定用户的未上线车源信息列表
	 * @param userId
	 * @return 详细车源信息列表
	 */
	public List<CarPubInfoModel> getOfflineCarPubInfoModelList(long userId);
	
	/**
	 * 货主搜索车辆
	 * @author 刘晓宁
	 * @param queryCarForGoodsEvt 请求参数
	 * @return
	 */
	public Page queryCarForGoods(QueryCarForGoodsEvt queryCarForGoodsEvt);
	
	/**
	 * 查询货物的所有应标车源信息
	 * 
	 * @author 刘晓宁
	 * @param goodsId 货物id
	 * 
	 * @return 符合的货源信息列表
	 */
	public List<BidCarInfoModel> queryBidCars(long goodsId, String[] carIds);
	
	/**
	 * 为首页查询车源信息
	 * @author yang
	 */
	public Page getCarPubsByCity(GetCarPubsByCityEvt evt);
}
